<?php
Class FZ_Controller {
        
    
    function FZ_Controller($module_name){
        $this->load($module_name);
    } 
    
    function __call($functionName, $args) {
       if(function_exists($functionName))  
         return call_user_func_array($functionName, $args);
    }
    
    /**
     * Load controller
     * @param string $module_name
     * @return mixed
     */
    function load($module_name){
        global $FZ_Url;
        $error = array();
        $module_name = $FZ_Url->seoUrl($module_name);
        
        
        //check dir
        if(!$this->check_module_folder($module_name)){
            $error['check_module_folder'] = 'Module folder not exists';
        }
        
        if(!$this->check_module_file($module_name)){
            $error['check_module_file'] = 'Module file not exists';
        }
        
        //load module
        if(count($error) == 0){
            include_once('modules/'.$module_name.'/C_'.$module_name.'.php');
        }
    }
    
    /**
     * Check module folder
     * @param string $module_name
     * @return bool
     */
    private function check_module_folder($module_name){
        if(file_exists('modules/'.$module_name) && is_dir('modules/'.$module_name)){
            $output = true;
        }else{
            $output = false;
        }
        return $output;
    }
    
    private function check_module_file($module_name){
        if (!file_exists('modules/'.$module_name.'/C_'.$module_name.'.php')) {   
            $output = false;                        
        }else{
            $output = true;
        }
        return $output;
    }
    
}

?>